package com.ruoyi.system.service;

import com.ruoyi.system.domain.BizFang;

import java.util.List;

/**
 * 房源信息 服务层
 * 
 * @author ruoyi
 */
public interface IBizFangService
{
    /**
     * 查询房源信息集合
     * 
     * @param fang 房源信息
     * @return 房源列表
     */
    public List<BizFang> selectFangList(BizFang fang);

    /**
     * 查询所有房源
     * 
     * @return 房源列表
     */
    public List<BizFang> selectFangAll();

    /**
     * 通过房源ID查询房源信息
     * 
     * @param fangId 房源ID
     * @return 角色对象信息
     */
    public BizFang selectFangById(Long fangId);

    /**
     * 根据用户ID获取房源选择框列表
     * 
     * @param userId 用户ID
     * @return 选中房源ID列表
     */
    public List<Long> selectFangListByUserId(Long userId);

    /**
     * 校验房源名称
     * 
     * @param fang 房源信息
     * @return 结果
     */
    public boolean checkFangNameUnique(BizFang fang);

    /**
     * 校验房源编码
     * 
     * @param fang 房源信息
     * @return 结果
     */
    public boolean checkFangCodeUnique(BizFang fang);

    /**
     * 通过房源ID查询房源使用数量
     * 
     * @param fangId 房源ID
     * @return 结果
     */
    public int countUserFangById(Long fangId);

    /**
     * 删除房源信息
     * 
     * @param fangId 房源ID
     * @return 结果
     */
    public int deleteFangById(Long fangId);

    /**
     * 批量删除房源信息
     * 
     * @param fangIds 需要删除的房源ID
     * @return 结果
     */
    public int deleteFangByIds(Long[] fangIds);

    /**
     * 新增保存房源信息
     * 
     * @param fang 房源信息
     * @return 结果
     */
    public int insertFang(BizFang fang);

    /**
     * 修改保存房源信息
     * 
     * @param fang 房源信息
     * @return 结果
     */
    public int updateFang(BizFang fang);
}
